import java.util.Scanner;

public class day5 {
/*
39道:BC41 你是天才吗？
描述
据说智商140以上者称为天才，KiKi想知道他自己是不是天才，请帮他编程判断。输入一个整数表示一个人的智商，如果大于等于140，则表明他是一个天才，输出“Genius”。
输入描述：
多组输入，每行输入包括一个整数表示的智商。
输出描述：
针对每行输入，输出“Genius”。
示例1
输入：160
输出：Genius
*/
public static void main39_1(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int genius = scanner.nextInt();
    if(genius >= 140) {
        System.out.println("Genius");
    }
}

/*
40道:OBC42 完美成绩
描述
KiKi想知道他的考试成绩是否完美，请帮他判断。从键盘输入一个整数表示的成绩，编程判断成绩是否在90~100之间，如果是则输出“Perfect”。

输入描述：
多组输入，每行输入包括一个整数表示的成绩（90~100）。
输出描述：
针对每行输入，输出“Perfect”。
示例1
输入：98
输出：Perfect
*/
public static void main40_1(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int perfect = scanner.nextInt();

    if(perfect >= 90 && perfect <= 100) {
        System.out.println("Perfect");
    }
}




/*

41道: BC43 及格分数
描述
KiKi想知道他的考试分数是否通过，请帮他判断。从键盘任意输入一个整数表示的分数，编程判断该分数是否在及格范围内，如果及格，即：分数大于等于60分，是输出“Pass”，否则，输出“Fail”。
输入描述：
多组输入，每行输入包括一个整数表示的分数（0~100）。
输出描述：
针对每行输入，输出“Pass”或“Fail”。
示例1
输入：94
输出：Pass
示例2
输入：44
输出：Fail
*/
public static void main41(String[] args) {
    Scanner scanner = new Scanner(System.in);

    while (scanner.hasNextInt()) { // 多组输入
        int genders = scanner.nextInt();

        if (genders >= 60) {
            System.out.println("Pass");
        } else {
            System.out.println("Fail");
        }
    }
}




/*
42道: BC44 判断整数奇偶性
描述
KiKi想知道一个整数的奇偶性，请帮他判断。从键盘任意输入一个整数（范围-231~231-1），编程判断它的奇偶性。
输入描述：
多组输入，每行输入包括一个整数。
输出描述：
针对每行输入，输出该数是奇数（Odd）还是偶数（Even）。
示例1
输入：
4
7
输出：
Even
Odd
*/
public static void main42(String[] args){
        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNextInt()) { // 多组输入整数
            int num = scanner.nextInt();

            if (num % 2 == 0) {
                System.out.println("Even");
            } else {
                System.out.println("Odd");
            }
        }
    }


    /*
43道: BC45 最高分数
描述
KiKi参加了语文、数学、外语的考试，请帮他判断三科中的最高分。从键盘任意输入三个整数表示的分数，编程判断其中的最高分。
数据范围： 0 \le n \le 100 \0≤n≤100
输入描述：
输入一行包括三个整数表示的分数（0~100），用空格分隔。
输出描述：
输出为一行，即三个分数中的最高分。
示例1
输入：
94 98 99
输出：99
示例2
输入：100 88 60
输出：100
*/

    public static void main43 (String[]args){
        Scanner scanner = new Scanner(System.in);
        int[] arr = new int[3];  // 通过new的方式创建数组,并指定其大小
        int max = 0;
        for (int i = 0; i < arr.length; i++) {
            arr[i] = scanner.nextInt();
            if (arr[i] > max) {
                max = arr[i];
            }
        }

        System.out.println(max);


    }


/*
44道:BC46 判断是元音还是辅音
描述
KiKi开始学习英文字母，BoBo老师告诉他，有五个字母A(a), E(e), I(i), O(o),U(u)称为元音，其他所有字母称为辅音，请帮他编写程序判断输入的字母是元音（Vowel）还是辅音（Consonant）。
输入描述：
多组输入，每行输入一个字母。
输出描述：
针对每组输入，输出为一行，如果输入字母是元音（包括大小写），输出“Vowel”，如果输入字母是非元音，输出“Consonant”。
示例1
输入：
A
b
输出：
Vowel
Consonant
*/
 // 方式一:
public static void main44_1(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String[] strs = {"A","E","I","O","U"};

    while(scanner.hasNext()) { // 多组输入字符串内容,注意nexttLinue() 与 next() 的区别
        String s = scanner.next();
        int i = 0;
        for(; i < strs.length;i++) {
            if(s.equalsIgnoreCase(strs[i])){  // 比较连个字符串的大小,不区分大小写
                System.out.println("Vowel");
                break;   // 找到了,满足元音的条件,跳出循环
            }
        }

        if(i == strs.length) { // 字符串都遍历完了,还没有匹配上就是没有了.
            System.out.println("Consonant");
        }
    }
}



// 方式二:
public static void main44_2(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String[] strs = {"A","E","I","O","U","a","e","i","o","u"};
    while(scanner.hasNext()) { // 多组数据的输入
        String s = scanner.next();
        int i = 0;
        for(i = 0; i < strs.length;i++) {
            if(strs[i].equals(s)) { ;// equals判断两个字符串是否相等,区分大小写.
                System.out.println("Vowel");
                break;  // 匹配是元音,跳出循环
            }
        }

        if(i == strs.length) { // 字符串都遍历完了,还没有匹配上就是没有了
            System.out.println("Consonant");
        }

    }
}

/*
45道: BC47 判断是不是字母
描述
KiKi想判断输入的字符是不是字母，请帮他编程实现。
输入描述：
多组输入，每一行输入一个字符。
输出描述：
针对每组输入，输出单独占一行，判断输入字符是否为字母，输出内容详见输出样例。
示例1
输入：
A
6
输出：
A is an alphabet.
6 is not an alphabet.
*/

    // 方式一:
    public static void main47_1(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while(scanner.hasNext()){
            char c = scanner.next().charAt(0);

            if((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
                System.out.println(c+" is an alphabet.");

            }
            else
            {
                System.out.println(c+" is not an alphabet.");
            }
        }
    }

    // 方式二:
    public static void main47_2(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while(scanner.hasNext()) {
            char c = scanner.next().charAt(0); // 获取到字符串输入的内容的第一字符内容
            if(Character.isLetter(c)) { // isLetter判断字符是否是字母
                System.out.println(c+" is an alphabet.");
            } else {
                System.out.println(c+" is not an alphabet.");
            }
        }
    }


    /*
46道: BC48 字母大小写转换
描述
KiKi想完成字母大小写转换，有一个字符，判断它是否为大写字母，如果是，将它转换成小写字母；反之则转换为大写字母。
输入描述：
多组输入，每一行输入一个字母。
输出描述：
针对每组输入，输出单独占一行，输出字母的对应形式。
示例1
输入：
a
A
Z
输出：
A
a
z
*/
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while(scanner.hasNext()) {
            char c = scanner.next().charAt(0); // 将读取道的字符串,获取到字符串下标为 0 的字符内容.
            if(c >= 'A' && c <= 'Z') { // 判断字符是否是大写字母
                System.out.println((char)(c+32)); // 将数值强制转为字符

            } else {
                // System.out.println((char)(c-32));
                // 或者是使用 printf()中的格式输出
                System.out.printf("%c\n",c-32);
            }
        }
    }

}
